package cn.iocoder.yudao.module.crossborder.platform.dal.dataobject.platformsynctask;

import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;

/**
 * 跨境电商数据同步任务 DO
 *
 * @author 芋道源码
 */
@TableName("crossborder_platform_sync_task")
@KeySequence("crossborder_platform_sync_task_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PlatformSyncTaskDO extends BaseDO {

    /**
     * 任务编号
     */
    @TableId
    private Long id;
    /**
     * 平台编号
     */
    private Long platformId;
    /**
     * 店铺编号
     */
    private Long storeId;
    /**
     * 同步类型
     */
    private String syncType;
    /**
     * 同步方向（1上传到平台 2从平台下载 3双向同步）
     */
    private Integer syncDirection;
    /**
     * 业务类型
     */
    private String businessType;
    /**
     * 业务数据ID
     */
    private Long businessId;
    /**
     * 批次号
     */
    private String batchNo;
    /**
     * 优先级（1-10，数字越小优先级越高）
     */
    private Integer priority;
    /**
     * 计划执行时间
     */
    private LocalDateTime scheduledTime;
    /**
     * 开始执行时间
     */
    private LocalDateTime startTime;
    /**
     * 结束执行时间
     */
    private LocalDateTime endTime;
    /**
     * 任务状态（0待执行 1执行中 2执行成功 3执行失败 4已取消）
     */
    private Integer status;
    /**
     * 执行进度（0-100）
     */
    private Integer progress;
    /**
     * 总数量
     */
    private Integer totalCount;
    /**
     * 成功数量
     */
    private Integer successCount;
    /**
     * 失败数量
     */
    private Integer failedCount;
    /**
     * 错误信息
     */
    private String errorMsg;
    /**
     * 请求数据JSON
     */
    private String requestData;
    /**
     * 响应数据JSON
     */
    private String responseData;
    /**
     * 重试次数
     */
    private Integer retryCount;
    /**
     * 最大重试次数
     */
    private Integer maxRetryCount;
    /**
     * 下次重试时间
     */
    private LocalDateTime nextRetryTime;


}
